package com.vinjogames.util;

/**
 * @author Joey
 * 
 * Contains all game variables that would be messed with under a configuration file.
 *
 */
//TODO: Make this into a class that loads a config file from text?
public final class GameConVars {
	
	public static final int DEFAULT_PLAYERS = 2;
	public static final int DEFAULT_MAX_TURRETS = 5;
	public static final int DEFAULT_MAX_RESOURCES = 4;
	public static final float FPS_MAX = 70;
	public static final int MAX_PROJECTILES = 5;
	public static final int MAX_UNIT_COUNT_PER_PLAYER = 20;

	//Physics Constants
	public static final float MAX_WIND_CHANGE = 1.5f;
	public static final float MAX_WIND = 7.0f;
	public static final float PHYSICS_CIRCLE_RADIUS = 1.5f;

	public static final float TIME_SLOW_FACTOR = 2.5f;
	
	//Object Constants:
	public static final int OBJECT_UNIT = 0;
	public static final int OBJECT_BASE =1 ;
	public static final int OBJECT_RESOURCE = 2;
	public static final int OBJECT_TURRET = 3;
	public static final int OBJECT_MISC = 4;

	//Unit Constants (Accuracy, Move/AP, Max Move AP, Health, Armor, Damage, Power, Food Cost):
	public static final int UNIT_SMALL_TANK = 0;
	public static final UnitUniqueConstants STATS_SMALL_TANK = new UnitUniqueConstants(0.8f, 2.5f, 2, 2, 1, 1.0f, 14.0f, 1, 1, 1.25f);
	public static final int UNIT_MEDIUM_TANK = 1;
	public static final UnitUniqueConstants STATS_MEDIUM_TANK = new UnitUniqueConstants(1.0f, 2.0f, 2, 3, 2, 1.2f, 16.0f, 1, 1, 1.5f);
	public static final int UNIT_HARVESTER_TANK = 2;
	public static final UnitUniqueConstants STATS_HARVESTER_TANK = new UnitUniqueConstants(0, 2.5f, 2, 3, 2, 0.0f, 0.0f, 1, 1, 0.0f);
	public static final int UNIT_SCOUT_TANK = 3;
	public static final UnitUniqueConstants STATS_SCOUT_TANK = new UnitUniqueConstants(0.8f, 3.0f, 3, 1, 1, 0.6f, 10.0f, 1, 1, 1);
	public static final int UNIT_SABO_TANK = 4;
	public static final UnitUniqueConstants STATS_SABO_TANK = new UnitUniqueConstants(1.0f, 2.0f, 2, 2, 1, 1.0f, 14.0f, 1, 1, 1);
	public static final int UNIT_ARTILLARY = 5;
	public static final UnitUniqueConstants STATS_ARTILLARY = new UnitUniqueConstants(0.5f, 1.25f, 2, 2, 1, 2.0f, 24.0f, 1, 1, 2.25f);
	public static final int UNIT_MARKET_TANK = 6;
	public static final UnitUniqueConstants STATS_MARKET_TANK = new UnitUniqueConstants(1.75f, 1.25f, 3, 4, 3, 1.5f /*times AP spent*/, 14.0f, 2, /*up to*/4, 2.0f);
	public static final int UNIT_FALCON_CHOPPER = 7;
	public static final UnitUniqueConstants STATS_FALCON_CHOPPER = new UnitUniqueConstants(0, 0.75f, 4, 2, 1, 2.25f, 12.0f, 2, 1, 2.0f);
	public static final int UNIT_BEHEMOTH_TANK = 8;
	public static final UnitUniqueConstants STATS_BEHEMOTH_TANK = new UnitUniqueConstants(0.8f, 1.5f, 2, 5, 5, 3.5f, 8.0f, 2, 1, 3.0f);
	public static final int[] UNITS = {0,1,2,3,4,5,6,7,8};
	public static final UnitUniqueConstants[] UNIT_CONSTANTS = { STATS_SMALL_TANK, STATS_MEDIUM_TANK, STATS_HARVESTER_TANK, STATS_SCOUT_TANK, STATS_SABO_TANK,
																STATS_ARTILLARY, STATS_MARKET_TANK, STATS_FALCON_CHOPPER, STATS_BEHEMOTH_TANK };
	public static final int UNIT_START_X_OFFSET = 4;
	public static final int UNIT_START_Y_OFFSET = 5;
	public static final float UNIT_ROTATION_CHECK = 0.1f;
	public static final float UNIT_MOVE_PER_TICK = .02f;
	public static final float UNIT_LIMIT_Y_MOVEMENT = .05f;
	public static final float GUN_ROTATION_CHANGE_SPEED = 0.6f;
	public static final int TURRET_COST_PER_ATTACK = 1;
	
	public static final float UNIT_FORCE_RADIUS = 2.5f;
	
	public static final float UNIT_DEFAULT_HEIGHT = 1f;
	public static final float UNIT_DEFAULT_WIDTH = 1f;

	//GameMap Constants:
	public static final int MAP_MAX_RESOURCES = 6;
	public static int MAP_POINTS = 41;
	public static final int MAP_DETAIL_LEVEL = 100;
	public static final int MAP_DEGREE = 2;
	public static final int MAP_MAX_CRATERS = 15;
	public static final int MAP_MAX_FOLIAGE = 10;
	public static final float MAP_WORLD_HEIGHT = 21.0f;
	public static final float MAP_SMALL_WIDTH = 40.0f;
	public static final float MAP_MEDIUM_WIDTH = 60.0f;
	public static final float MAP_LARGE_WIDTH = 100.0f;
	public static final int MAP_TURRET_WIDTH = 4;
	public static final int MAP_BASE_WIDTH = 6;
	public static final int MAP_RESOURCE_WIDTH = 4;
	public static final int MAP_POINT_TYPE_TURRET = 1;
	public static final int MAP_POINT_TYPE_BASE = 2;
	public static final int MAP_POINT_TYPE_RESOURCE = 3;

	//Player Constants:
	public static final float PLAYER_HEAL_PER_TURN = 0.0f;
	public static final int PLAYER_STARTING_AP = 8;
	public static final int PLAYER_MAX_AP_STORAGE = 16;
	public static final int PLAYER_UNIT_RESOURCE_CAP = 1;
	public static final int PLAYER_MINIMUM_INCOME = 3;

	//Buy Menu Constants:
	public static final int BUY_WIDTH = 3;
	public static final int BUY_HEIGHT = 3;
	public static final int BUY_PAGES = 2;
	public static final int BUY_BUTTON_WIDTH = 1;
	public static final int BUY_BUTTON_HEIGHT = 1;


	//GAME ECONOMY:	
	//Resources
	public static final int RESOURCE_BONUS_AP = 2;

	//Technology Budgets and Totals
	public static final int PLAYER_TECHNOLOGY_BUDGET = 7;
	public static final int TECH_TREES = 3;
	public static final int TECH_DEPTH = 4;
	public static final int TECH_TREE_TOTALS = 6;
	public static final int LEVEL_ONE_TECHS = 1;
	public static final int LEVEL_TWO_TECHS = 2;
	public static final int LEVEL_THREE_TECHS = 2;
	public static final int LEVEL_FOUR_TECHS = 1;
	public static final int[] TECH_LEVELS = {0,
		LEVEL_ONE_TECHS, 
		LEVEL_ONE_TECHS + LEVEL_TWO_TECHS,
		LEVEL_ONE_TECHS + LEVEL_TWO_TECHS + LEVEL_THREE_TECHS,
		LEVEL_ONE_TECHS + LEVEL_TWO_TECHS + LEVEL_THREE_TECHS + LEVEL_FOUR_TECHS };
	//Technology Tree Hierarchies
	
	public static final int TECH_UNIT1_NUMBER = 2;
	public static final int TECH_UNIT2_NUMBER = 5;
	
	//ECONOMIC: 
	public static final int ECONOMIC_TREE = 0;
	public static final int HighYieldMining = 0; //Increases AP per turn provided by base 2.
	public static final int BonusAP = 2;
	public static final int ForwardSupplyPosts = 1; //Units heal 10% HP per turn (@ turn start) and unlocks forward outpost deployment action for harvester tank.
	public static final float BonusHeal = 0.1f;
	public static final int Sabotage = 2; //Unlocks unit: Saboteurge-X3 (Successful attacks reduce the AP of the opponent by 1 on next turn, or 2 if hitting a base)
										  //Limit -4 per turn.
	public static final int CombatEngineering = 3; //Units contribute double towards capturing resources.
	public static final int AssemblyLineManufacturing = 4; //% chance per turn to receive a basic tank for free.
	public static final double LotteryTank = 0.04;
	public static final int CostEfficiency = 5; //Unlocks unit: Mark-ET Siege Tank.
	//(Attack strength scales with AP used to fire, max AP is strongest attack in game, low accuracy)

	//TACTICAL:
	public static final int TACTICAL_TREE = 1;
	public static final int TitaniumTreads = 0; //Increase distance units can move per AP by 10%.
	public static final float TreadMovement = 0.1f;
	public static final int LaserTargeting = 1; //Decrease random accuracy factor of attacks by 20%.
	public static final float LaserTargetingBonus = -0.2f;
	public static final int Reconaissance = 2; //Unlocks unit: Scout Tank (massive movement, low attack, short range, very accurate)
	public static final int AdvancedTactics = 3; //Units can move after firing.
	public static final int AirborneInvasion = 4; //Spend AP to air-drop the next created unit up to X distance from base.
	public static final int TacticalStrikes = 5; //Unlocks unit: Falcon-T6 Assault Chopper. 
	//(Flying unit, high movement cost, high damage attack, can pick up/move units, very accurate)

	//DESTRUCTIVE:
	public static final int DESTRUCTIVE_TREE = 2;
	public static final int AdvancedShellCasings = 0; //Increases damage of attacks by 10%.
	public static final float ShellCasingDamageBonus = 0.1f;
	public static final int CollateralDamage = 1; //Increases radius of attack explosions by 50%.
	public static final float CollateralAreaBonus = 0.5f;
	public static final int Bombardment = 2; //Unlocks unit: Artillary tank. (Super long range, large attack radius, high damage, low accuracy)
	public static final int FrontlineReinforcement = 3; //Sacrifice 10% movement radius of all units for a 20% decrease in damage taken.
	public static final float FrontLineMovementPenalty = -0.1f;
	public static final float FrontLineDefenseBonus = -0.2f;
	public static final int UltraCompactShelling = 4; //Sacrifice 10% attack range of all units for a 20% increase in damage dealt.
	public static final float CompactShellingRangePenalty = -0.1f;
	public static final float CompactShellingDamageBonus = 0.2f;
	public static final int BattlefieldControl = 5; //Unlocks unit: Behemoth-BFG88 Tank.
	//(Strong attack, extremely high armor, very slow movement, short range)
	
	
	//Unit and upgrade prices
	public static final int BUY_ScoutTankCost = 2;
	public static final int BUY_SmallTankCost = 2;
	public static final int BUY_SaboteurgeTankCost = 2;
	public static final int BUY_MediumTankCost = 3;
	public static final int BUY_ArtillaryTankCost = 3;
	public static final int BUY_ArtillaryTurretCost = 3;
	public static final int BUY_HarvesterTankCost = 3;
	public static final int BUY_MarketTankCost = 5;
	public static final int BUY_SSMissileTurretCost = 5;
	public static final int BUY_FalconChopperCost = 5;
	public static final int BUY_BehemothTankCost = 6;
	
	// Zeroeth index messes up the current code.  It works just fine without it.
//	public static final int BUY_TECHNOLOGY_COSTS[] = {0, 3, 3, 4, 5};
	public static final int BUY_TECHNOLOGY_COSTS[] = {3, 3, 4, 5};
	
	public static final int BUY_BASE_HEALTH_INCREASE = 5;
	public static final int BUY_BASE_TURRET_SLOT = 5;
	public static final int BUY_BASE_QUARTER_HEAL = 8;
	public static final int BUY_BASE_HALF_HEAL = 15;
	public static final int BUY_BASE_DOUBLE_UNIT_PRODUCTION = 20;
	public static final int BUY_BASE_INCREASE_RESOURCE = 20;
	
	public static final int BASE_HEALTH_PURCHASE = 1;
	public static final int BASE_TURRET_PURCHASE = 2;
	public static final int BASE_QUARTER_HEAL_PURCHASE = 3;
	public static final int BASE_HALF_HEAL_PURCHASE = 4;
	public static final int BASE_DOUBLE_UNIT_PURCHASE = 5;
	public static final int BASE_RESOURCE_PURCHASE = 6;

	//Input manager actions
	public static final int INPUT_TAP = 0;
	public static final int INPUT_DOWN = 1;
	public static final int INPUT_DRAG = 2;
	public static final int INPUT_ZOOM = 3;
	public static final int INPUT_MENU = 4;
	public static final int INPUT_QUIT = 5;
	public static final int INPUT_UP = 6;

	//Graphic IDS
	public static final int GRAPHIC_GLP = 256; //Pixels per GL

	
	public static final int UI_SPINNER = 0;
	public static final int GRAPHIC_TREE = 1;
	public static final int MENUBACKGROUND = 2;
	public static final int BUTTON = 3;
	public static final int ARROW = 4;
	public static final int SELECTION = 5;
	public static final int ENDTURN = 6;
	public static final int SHOOT = 7;
	public static final int TURNAROUND = 8;
	public static final int GO = 9;
	public static final int GRAPHIC_WIND = 10;
	public static final int OFFLINE_MAP_BUTTON = 11;
	public static final int ONLINE_MAP_BUTTON = 12;
	public static final int GRAPHIC_RESOURCE = 13;
	
	public static final int GRAPHIC_BACKGROUND1 = 14;
	public static final int GRAPHIC_FOREGROUND1 = 15;
	
	public static final int GRAPHIC_BACKGROUND2 = 16;
	public static final int GRAPHIC_FOREGROUND2 = 17;
	
	public static final int GRAPHIC_BACKGROUND3 = 18;
	public static final int GRAPHIC_FOREGROUND3 = 19;
	
	public static final int GRAPHIC_WATER_TEXTURE = 20;
	public static final int GRAPHIC_GRASS_TEXTURE = 21;
	public static final int GRAPHIC_STONE_TEXTURE = 22;
	public static final int GRAPHIC_WOOD_TEXTURE = 23;
	
	public static final int CAPTURE_RESOURCE = 24;
	public static final int AIM = 25;
	
	public static final int GRAPHIC_BUTTON_BORDER = 26;
	public static final int GRAPHIC_WINDOW_BORDER = 27;
	
	public static final int GRAPHIC_GROUND_TEXTURE1 = 28;
	public static final int GRAPHIC_GROUND_TEXTURE2 = 29;
	public static final int GRAPHIC_GROUND_TEXTURE3 = 30;
	public static final int GRAPHIC_GROUND_TEXTURE4 = 31;
	public static final int GRAPHIC_GROUND_TEXTURE5 = 32;
	public static final int[] GRAPHIC_GROUND_TEXTURES = { GRAPHIC_GROUND_TEXTURE1, GRAPHIC_GROUND_TEXTURE2, GRAPHIC_GROUND_TEXTURE3, GRAPHIC_GROUND_TEXTURE4, GRAPHIC_GROUND_TEXTURE5};
	
	public static final int[] GRAPHIC_BACKGROUNDS = { GRAPHIC_BACKGROUND1, GRAPHIC_BACKGROUND2, GRAPHIC_BACKGROUND3};
	public static final int[] GRAPHIC_FOREGROUNDS = { GRAPHIC_FOREGROUND1, GRAPHIC_FOREGROUND2, GRAPHIC_FOREGROUND3};

	public static final int GRAPHIC_LOADINGSCREEN = 33;
	
	// Tech Buttons
	// TODO Uncomment and put in an accurate offset when we have unique images for the Tech buttons.
	public static final int GRAPHIC_TECHTREE_OFFSET = 34;
	public static final int GRAPHIC_TECHTREE_ECONOMIC_OFFSET = GRAPHIC_TECHTREE_OFFSET;
	public static final int[] GRAPHIC_TECHTREE_ECONOMIC = {0 + GRAPHIC_TECHTREE_ECONOMIC_OFFSET,
		1 + GRAPHIC_TECHTREE_ECONOMIC_OFFSET,
		2 + GRAPHIC_TECHTREE_ECONOMIC_OFFSET,
		3 + GRAPHIC_TECHTREE_ECONOMIC_OFFSET,
		4 + GRAPHIC_TECHTREE_ECONOMIC_OFFSET,
		5 + GRAPHIC_TECHTREE_ECONOMIC_OFFSET
	};
	public static final int GRAPHIC_TECHTREE_TACTICAL_OFFSET = GRAPHIC_TECHTREE_ECONOMIC_OFFSET + GRAPHIC_TECHTREE_ECONOMIC.length;
	public static final int[] GRAPHIC_TECHTREE_TACTICAL = {0 + GRAPHIC_TECHTREE_TACTICAL_OFFSET,
		1 + GRAPHIC_TECHTREE_TACTICAL_OFFSET,
		2 + GRAPHIC_TECHTREE_TACTICAL_OFFSET,
		3 + GRAPHIC_TECHTREE_TACTICAL_OFFSET,
		4 + GRAPHIC_TECHTREE_TACTICAL_OFFSET,
		5 + GRAPHIC_TECHTREE_TACTICAL_OFFSET
	};
	public static final int GRAPHIC_TECHTREE_DESTRUCTIVE_OFFSET = GRAPHIC_TECHTREE_TACTICAL_OFFSET + GRAPHIC_TECHTREE_TACTICAL.length;
	public static final int[] GRAPHIC_TECHTREE_DESTRUCTIVE = {0 + GRAPHIC_TECHTREE_DESTRUCTIVE_OFFSET,
		1 + GRAPHIC_TECHTREE_DESTRUCTIVE_OFFSET,
		2 + GRAPHIC_TECHTREE_DESTRUCTIVE_OFFSET,
		3 + GRAPHIC_TECHTREE_DESTRUCTIVE_OFFSET,
		4 + GRAPHIC_TECHTREE_DESTRUCTIVE_OFFSET,
		5 + GRAPHIC_TECHTREE_DESTRUCTIVE_OFFSET
	};
	
	//Tanks

	public static final int GRAPHIC_TANKS_OFFSET = GRAPHIC_TECHTREE_DESTRUCTIVE_OFFSET + GRAPHIC_TECHTREE_DESTRUCTIVE.length;

//	public static final int GRAPHIC_TANKS_OFFSET = 26;

	public static final int[] GRAPHIC_TANKS = {0 + GRAPHIC_TANKS_OFFSET,
		1 + GRAPHIC_TANKS_OFFSET,
		2 + GRAPHIC_TANKS_OFFSET,
		3 + GRAPHIC_TANKS_OFFSET,
		4 + GRAPHIC_TANKS_OFFSET,
		5 + GRAPHIC_TANKS_OFFSET,
		6 + GRAPHIC_TANKS_OFFSET,
		7 + GRAPHIC_TANKS_OFFSET,
		8 + GRAPHIC_TANKS_OFFSET};
	//Guns
	public static final int GRAPHIC_GUNS_OFFSET = GRAPHIC_TANKS_OFFSET + GRAPHIC_TANKS.length;
	public static final int[] GRAPHIC_GUNS = {0 + GRAPHIC_GUNS_OFFSET,
		1 + GRAPHIC_GUNS_OFFSET,
		2 + GRAPHIC_GUNS_OFFSET,
		3 + GRAPHIC_GUNS_OFFSET,
		4 + GRAPHIC_GUNS_OFFSET,
		5 + GRAPHIC_GUNS_OFFSET,
		6 + GRAPHIC_GUNS_OFFSET,
		7 + GRAPHIC_GUNS_OFFSET,
		8 + GRAPHIC_GUNS_OFFSET};
	//Base upgrades
	public static final int GRAPHIC_BASEUP_OFFSET = GRAPHIC_GUNS_OFFSET + GRAPHIC_GUNS.length;
	public static final int[] GRAPHIC_BASEUPS = {};

	//Projectiles
	public static final int GRAPHIC_PROJ_OFFSET = GRAPHIC_BASEUP_OFFSET + GRAPHIC_BASEUPS.length;
	public static final int[] GRAPHIC_PROJECTILES = {0 + GRAPHIC_PROJ_OFFSET};
	
	//Turrets
	public static final int GRAPHIC_TURRET_OFFSET = GRAPHIC_PROJ_OFFSET + GRAPHIC_PROJECTILES.length;
	public static final int[] GRAPHIC_TURRETS = {0 + GRAPHIC_TURRET_OFFSET};

	//Bases
	public static final int GRAPHIC_BASE_OFFSET = GRAPHIC_TURRET_OFFSET + GRAPHIC_TURRETS.length;
	public static final int[] GRAPHIC_BASES = {0 + GRAPHIC_BASE_OFFSET};	

	public static final int GRAPHIC_MAX_TEXTURES = GRAPHIC_BASE_OFFSET + GRAPHIC_BASES.length + 1;
	
	public static final int ANIM_EXPLOSION1 = 0;
	public static final int ANIM_EXPLOSION2 = 1;
	public static final int ANIM_EXPLOSION3 = 2;
	public static final int ANIM_EXPLOSION4 = 3;
	public static final int ANIM_FLAME = 4;
	public static final int ANIM_SPARK1 = 5;
	public static final int ANIM_SPARK2 = 6;
	
	public static final int ALL_ANIMATIONS = 7;//TODO:
	
	public static final int GAME_LOCAL = 0;
	public static final int GAME_NETWORK = 1;

	public static final int PLAYER_LOCAL = 0;
	public static final int PLAYER_AI = 1;
	public static final int PLAYER_NETWORK = 2;

	public static final int NETWORK_ERROR      = -1;
	public static final int NETWORK_PING       = 0;
	public static final int NETWORK_QUIT       = 1;
	public static final int NETWORK_GAMEACTION = 2;
	public static final int NETWORK_MOVEUNIT   = 3;
	public static final int NETWORK_UNITANGLE  = 4;
	public static final int NETWORK_SELECTUNIT = 5;
	public static final int NETWORK_SHOOTUNIT  = 6;
	public static final int NETWORK_FORCE      = 7;
	public static final int NETWORK_BUYUNIT    = 8;
	public static final int NETWORK_ENDTURN    = 9;
	public static final int NETWORK_CONFIRM    = 10;
	public static final int NETWORK_TURNUNIT   = 11;
	public static final int NETWORK_STOPUNIT   = 12;

	public static final int BASE_LOCATION_X_OFFSET = 2;
	public static final int BASE_LOCATION_Y_OFFSET = 3;
	public static final int BASE_DEFAULT_HEALTH = 12;
	public static final int BASE_BONUS_RESOURCES = 2;
	public static final int BASE_BONUS_HEALTH = 2;
	
	public static final int AI_MAX_MODES = 2;
	public static final int AI_BASIC = 0;
	public static final int AI_MEDIUM = 1;
	public static final int AI_HARD = 2;
	public static final int AI_BASIC_SHOT_STORAGE = 2;
	public static final int AI_MEDIUM_SHOT_STORAGE = 5;
	public static final int AI_HARD_SHOT_STORAGE = 8;
	public static final float AI_ANGLE_CORRECTION = 3.0f;
	public static final double AI_POWER_CORRECTION = 1.5;
	
	public static final float COLLISION_WAIT = 1500;

	public static final int GAMEOBJECT_STATE_IDLE = 0;
	public static final int GAMEOBJECT_STATE_MOVING = 1;
	public static final int GAMEOBJECT_STATE_SHOOTING = 2;
	public static final int GAMEOBJECT_STATE_BURNING = 3;
	
	
	// Object Constants
	public static final float SLIDE_THRESHOLD = 0.01f;
	
	public static final String[] TECH_DETAILS = new String[]{
		"High Yield Mining",
		"Increases AP amount provided by base by 2 per turn.",
    	"Forward Supply Posts",
    	"Units heal 10% per turn and unlocks forward outpost deployment action for harvester tank.",
    	"Sabotage",
    	"Unlocks Unit: Saboteurge-X3 (Successful attacks reduce the AP of the opponent by 1 on next turn, or 2 if hitting a base).",
    	"Combat Engineering",
    	"Units contribute double towards capturing resources.",
    	"Assembly Line Manufacturing",
    	"% chance per turn to receive a basic tank for free.",
    	"Cost Efficiency",
    	"Unlocks Unit: Mark-ET Siege Tank (Attack strength scales with AP used to fire, low accuracy).",
 
    // Tech Tree 1
    	"Titanium Threads",
    	"Increase distance units can move by 10% per AP.",
    	"Laser Targeting",
    	"Decreases the random accuracy factor of attacks by 20%.",
    	"Reconnaissance",
    	"Unlocks Unit: Scout Tank (high movement, low attack, short range, very accurate).",
    	"Advanced Tactics",
    	"Units can move after firing.",
    	"Airborne Invasion",
    	"Spend AP to air-drop the next created unit up to X distance from base.",
    	"Tactical Strikes",
    	"Unlocks Unit: Falcon-T6 Assault Chopper (Flying unit, high movement cost, high damage attack, can pick up/move units, very accurate).",

  // Tech Tree 2
    	"Advanced Shell Casings",
    	"Increases damage of attacks by 10%.",
    	"Collateral Damage",
    	"Increases radius of attack explosions by 50%.",
    	"Bombardment",
    	"Unlocks Unit: Artillery Tank. (Super long range, large attack radius, high damage, low accuracy).",
    	"Frontline Reinforcements",
    	"Sacrifice 10% movement radius of all units for a 20% decrease in damage taken.",
    	"Ultra Compact Shelling",
    	"Sacrifice 10% attack range of all units for a 20% increase in damage dealt.",
    	"Battlefield Control",
    	"Unlocks Unit: Behemoth-BFG88 Tank. (Strong attack, extremely high armor, very slow movement, short range).",
	};
}
